#ifndef CMDTASK_H_
#define CMDTASK_H_
#include"user.h"
typedef enum {
	CMD_TYPE_INIT = -1,
	CMD_TYPE_CD = 1,
	CMD_TYPE_LS,
	CMD_TYPE_PWD,
	CMD_TYPE_MKDIR,
	CMD_TYPE_RMDIR,
	CMD_TYPE_REMOVE,
	CMD_TYPE_PUTS,
	CMD_TYPE_GETS
} CmdType;

typedef struct task_s {
	int _clientFd; //对端fd
	CmdType _cmdType; //命令类型
	char _data[200]; //存储命令
} task_t;

task_t *_task_init(void);
//TLV协议
typedef struct train_s {
	int _length; //内容长度
	CmdType _cmdType; //命令类型
	char _data[1000]; //数据内容
} train_t;

void doTask(task_t *ptask, user_context *puser);

//任务接口
void cmdCd(task_t *ptask, user_context *puser);
void cmdLs(task_t *ptask, user_context *puser);
void cmdPwd(task_t *ptask, user_context *puser);

void cmdMkdir(task_t *ptask, user_context *puser);
void cmdRmdir(task_t *ptask, user_context *puser);

void cmdPuts(task_t *ptask, user_context *puser);
void cmdGets(task_t *ptask, user_context *puser);
void cmdRemove(task_t *ptask, user_context *puser);

int gets_client(int netfd,train_t *train);
int gets(int netfd, train_t *train);

#endif

